package negocio;

import java.sql.Date;
import java.util.List;

import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.ManyToOne;

@Entity
public class Factura
{
	@Id
	private int nroFactura;
	private Date fecha;
	@ManyToOne
	@JoinColumn(name="Pedido", referencedColumnName="nroPedido")
	private Pedido pedido;
	
	private float total;
	private String observaciones;
	@ManyToOne
	@JoinColumn(name="Cliente", referencedColumnName="cuit")
	private Cliente cliente;
	
	
	@ManyToMany(cascade = CascadeType.PERSIST)
	 @JoinTable(name="ItemFactura",
	   joinColumns=@JoinColumn(name="nroFactura"),
	   inverseJoinColumns=@JoinColumn(name="codigo_rodamiento"))
	private List<Rodamiento> rodamientos;
	
	
	
	
	public int getNroFactura() {
		return nroFactura;
	}

	public void setNroFactura(int nroFactura) {
		this.nroFactura = nroFactura;
	}

	public Date getFecha() {
		return fecha;
	}

	public void setFecha(Date fecha) {
		this.fecha = fecha;
	}

	public Pedido getPedido() {
		return pedido;
	}

	public void setPedido(Pedido pedido) {
		this.pedido = pedido;
	}

	public float getTotal() {
		return total;
	}

	public void setTotal(float total) {
		this.total = total;
	}

	public String getObservaciones() {
		return observaciones;
	}

	public void setObservaciones(String observaciones) {
		this.observaciones = observaciones;
	}

	public void agregarItem(Object ItemFactura)
	{
	
	}
	
	public float calcularDescuento()
	{
		return 0;
	
	}
	
	public float calcularTotal()
	{
		return 0;
	
	}

	public void setCliente(Cliente cliente) {
		this.cliente = cliente;
	}

	public Cliente getCliente() {
		return cliente;
	}

	public void setRodamientos(List<Rodamiento> rodamientos) {
		this.rodamientos = rodamientos;
	}

	public List<Rodamiento> getRodamientos() {
		return rodamientos;
	}
}
